package wo.resume.dto;

import java.util.ArrayList;
import java.util.List;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import wo.common.util.WoUtil;
import wo.resume.po.Resume;
import wo.resume.po.Work;

/**
 * PO实体Work对应的DTO父类.这是自动生成的代码,请不要修改.如要添加属性或者方法,请在其子类DTO中修改.
 * @author cailei
 */
class WorkDto_ {

	/**
	 * 主键id
	 */
	private java.lang.String id;

	/**
	 * 属性company
	 */
	private java.lang.String company;
	/**
	 * 属性startDate
	 */
	private java.util.Date startDate;
	/**
	 * 属性endDate
	 */
	private java.util.Date endDate;
	/**
	 * 属性position
	 */
	private java.lang.String position;

	
	/**
	 * 对应PO的resume属性,多对一关联实体Resume的主键值
	 */
	private java.lang.String resumeId;

	/**
	 * 对应PO的resume属性,多对一关联实体Resume的name属性值
	 */
	private java.lang.String resumeName;

	
	/**
	 * 无参构造函数
	 */
	public WorkDto_() {
	}

	/**
	 * 构造函数,通过po构造dto
	 */
	public WorkDto_(Work po) {
			// 设置主键id
		this.id = po.getId();
				// 设置属性company
		this.company = po.getCompany();
			// 设置属性startDate
		this.startDate = po.getStartDate();
			// 设置属性endDate
		this.endDate = po.getEndDate();
			// 设置属性position
		this.position = po.getPosition();
		
				// 设置DTO的resume属性值
		if (po.getResume() != null) {
			this.resumeId = po.getResume().getId();
			this.resumeName = po.getResume().getName();
		}
			}

	
	/**
	 * 主键id的getter方法
	 */
	public java.lang.String getId() {
		return this.id;
	}

	/**
	 * 主键id的setter方法
	 */
	public void setId(java.lang.String id) {
		this.id = id;
	}

	
	/**
	 * 属性company的getter方法
	 */
		public java.lang.String getCompany() {
		return this.company;
	}

	/**
	 * 属性company的setter方法
	 */
		public void setCompany(java.lang.String company) {
		this.company = company;
	}
	
	/**
	 * 属性startDate的getter方法
	 */
		@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
		public java.util.Date getStartDate() {
		return this.startDate;
	}

	/**
	 * 属性startDate的setter方法
	 */
		@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
		public void setStartDate(java.util.Date startDate) {
		this.startDate = startDate;
	}
	
	/**
	 * 属性endDate的getter方法
	 */
		@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
		public java.util.Date getEndDate() {
		return this.endDate;
	}

	/**
	 * 属性endDate的setter方法
	 */
		@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
		public void setEndDate(java.util.Date endDate) {
		this.endDate = endDate;
	}
	
	/**
	 * 属性position的getter方法
	 */
		public java.lang.String getPosition() {
		return this.position;
	}

	/**
	 * 属性position的setter方法
	 */
		public void setPosition(java.lang.String position) {
		this.position = position;
	}

	/**
	 * 属性resumeId的getter方法
	 */
	public java.lang.String getResumeId() {
		return resumeId;
	}

	/**
	 * 属性resumeId的setter方法
	 */
	public void setResumeId(java.lang.String resumeId) {
		this.resumeId = resumeId;
	}

	/**
	 * 属性resumeName的getter方法
	 */
	public java.lang.String getResumeName() {
		return resumeName;
	}

	/**
	 * 属性resumeName的setter方法
	 */
	public void setResumeName(java.lang.String resumeName) {
		this.resumeName = resumeName;
	}

	/**
	 * 将当前对象转化为po
	 * @return
	 */
	public Work createPO() {
		Work po = new Work();
			// 设置PO主键id
					if (WoUtil.isEmpty(this.id)) {
				po.setId(java.util.UUID.randomUUID().toString());
			} else {
				po.setId(this.id);
			}
						// 设置PO属性company
				po.setCompany(this.company);
					// 设置PO属性startDate
				po.setStartDate(this.startDate);
					// 设置PO属性endDate
				po.setEndDate(this.endDate);
					// 设置PO属性position
				po.setPosition(this.position);
				
				// 设置关系数据
		Resume resume = new Resume();
		if (!WoUtil.isEmpty(resumeId)) {
			resume.setId(this.resumeId);
			po.setResume(resume);
		}
			return po;
	}

	/**
	 * @param po
	 */
	public void updatePO(Work po) {
			// 设置PO属性company
		po.setCompany(this.company);
			// 设置PO属性startDate
		po.setStartDate(this.startDate);
			// 设置PO属性endDate
		po.setEndDate(this.endDate);
			// 设置PO属性position
		po.setPosition(this.position);
		
				// 设置PO的resume属性:M21
		if (!WoUtil.isEmpty(resumeId)) {
			Resume resume = new Resume();
			resume.setId(this.resumeId);
			po.setResume(resume);
		} else {
			po.setResume(null);
		}
		}
}
